Often times, global temporary or volatile tables, referred to generally as “temporary tables” are used in a session, i.e., a series of database interactions with a user between a login and a logoff, or a stored procedure, i.e., a collection of SQL statements associated with a named identifier and saved in a dictionary, to hold the intermediate results of some operation, or to split large queries into manageable and re-usable small chunks. Generally, these temporary tables are used or reused in the subsequent “selects” of the main queries.
Database optimizers use column demographics and histograms to produce optimal plans. Collecting such statistics for temporary tables is a challenge.